package com.example.demokotlin

import android.graphics.Rect
import org.junit.Test


/**
 * Kotlin和Java的互操作性
 *
 *
 * @author zhouronghua
 * @time 2021/9/20 8:58 上午
 */
class NestOpTest {


    /**
     * 对于Java的操作
     * 1) 访问Java属性不需要使用set或get，可直接访问
     *
     *
     * @author zhouronghua
     * @time 2021/9/20 8:59 上午
     */
    @Test
    fun testJavaCall() {
        // 构造函数可直接使用(初始值设置不上)
        var rect = Rect(10, 100, 110, 200)
        rect.left = 10
        rect.right = 110
        rect.top = 100
        rect.bottom = 200
        // 可以直接调用Java类方法
        println("rect center is centerX: ${rect.centerX()}  centerY: ${rect.centerY()}")
        // 访问属性可以直接访问，不需要getX
        println("X is  ${rect.left}")
    }

    /**
     * 测试Java调用Kotlin
     *
     *
     * @author zhouronghua
     * @time 2021/9/20 9:02 上午
     */
    @Test
    fun testKotlinCall() {
        val p = NestJavaTest()
        println(p.testKotlinCall())
        // 测试java访问Kotlin静态方法
        p.testKotlinStatic()
        // 测试调用Kotlin函数方法
        p.testKotlinFunction()
    }
}